package com.ruoyi.system.mapper;

import java.util.List;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.system.domain.StudentRace;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * 我的参赛项目Mapper接口
 *
 * @author yusheng
 * @date 2024-01-23
 */
@Mapper
public interface StudentRaceMapper extends BaseMapper<StudentRace> {
    /**
     * 查询我的参赛项目
     *
     * @param id 我的参赛项目主键
     * @return 我的参赛项目
     */
    public StudentRace selectStudentRaceById(Long id);

    /**
     * 获取通过审核的项目和学生的成绩信息
     * @author yusheng
     * @since 2024/1/26 13:43
     * @param raceName 项目名称
     * @param raceType 项目类型
     * @return {@link List< StudentRace> }
     */
    List<StudentRace> getRaceByIdAndName(@Param("raceName") String raceName,
                                         @Param("raceType") Integer raceType);

    /**
     * 获取学生有名次的数据
     * @author yusheng
     * @since 2024/1/26 13:43
     * @param raceName 项目名称
     * @param raceType 项目类型
     * @return {@link List<StudentRace> }
     */
    List<StudentRace> getRaceRankByName(@Param("raceName") String raceName,
                                         @Param("raceType") Integer raceType);

    /**
     * 查询我的参赛项目列表
     *
     * @param studentRace 我的参赛项目
     * @return 我的参赛项目集合
     */
    public List<StudentRace> selectStudentRaceList(StudentRace studentRace);

    /**
     * 新增我的参赛项目
     *
     * @param studentRace 我的参赛项目
     * @return 结果
     */
    public int insertStudentRace(StudentRace studentRace);

    /**
     * 修改我的参赛项目
     *
     * @param studentRace 我的参赛项目
     * @return 结果
     */
    public int updateStudentRace(StudentRace studentRace);

    /**
     * 删除我的参赛项目
     *
     * @param id 我的参赛项目主键
     * @return 结果
     */
    public int deleteStudentRaceById(Long id);

    /**
     * 批量删除我的参赛项目
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteStudentRaceByIds(Long[] ids);
}
